
package com.insigma.business.qrcode.soldier._provider;



import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.SoldierJobMessageInfoDTO;
import com.insigma.business.qrcode.soldier.dto.SoldierMessageInfoDTO;
import com.insigma.business.qrcode.soldier.dto.SoldierMessageInfoUpdateRequest;
import com.insigma.business.qrcode.soldier.dto.SoldierMessageStatusDTO;
import com.insigma.business.qrcode.soldier.request.*;

import java.util.List;


public interface SoldierMessageInfoProvider {

    
    BasePagingResponse<List<SoldierMessageInfoDTO>> searchSoldierMessageInfo(final SoldierMessageInfoSearchRequest soldierMessageInfoSearchRequest);

    
    BasePagingResponse<List<SoldierMessageInfoDTO>> searchMyMessage(final SoldierMessageInfoSearchRequest soldierMessageInfoSearchRequest);

    
    BaseResponse<List<SoldierMessageInfoDTO>> listRemindAndUnreadMessageInfo(String soldierId);

    
    BaseResponse<List<SoldierMessageInfoDTO>> listNotSignMessageOfPlacement(String soldierId);

    
    BaseResponse<String> addMessageOfPlacement(final SoldierMessageInfoInsertRequest soldierMessageInfoInsertRequest);

    
    BaseResponse<String> batchAddMessageOfPlacement(final SoldierMessageInfoInsertRequest soldierMessageInfoInsertRequest);

    
    BaseResponse<String> addMessageSignOfPlacement(final CommonSignInfoInsertRequest request);

    
    BaseResponse<SoldierMessageStatusDTO> countNotReadMessage(String soldierId);

    
    BaseResponse<Integer> setMessageRead(String id, String soldierId);

    
    BaseResponse<SoldierMessageInfoDTO> getSoldierMessageInfo(final BaseGetRequest baseGetRequest);

    
    BaseResponse<String> insertSoldierMessageInfo(final SoldierMessageInfoInsertRequest soldierMessageInfoInsertRequest);

    
    BaseResponse<Integer> updateSoldierMessageInfo(final SoldierMessageInfoUpdateRequest soldierMessageInfoUpdateRequest);

    
    BaseResponse<Integer> publishMessage(final SoldierMessageInfoUpdateRequest request);

    
    BaseResponse<Integer> deleteSoldierMessageInfo(final BaseDeleteRequest deleteRequest);

    
    BasePagingResponse<List<SoldierJobMessageInfoDTO>> searchJobMessageStats(final CommonLedgerStatsRequest request);

}
